<html>
<head><meta charset="utf-8"><title>lazy normalization · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html">lazy normalization</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="150744046"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/150744046" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#150744046">(Dec 03 2018 at 01:15)</a>:</h4>
<p>hey <span class="user-mention" data-user-id="131694">@scalexm</span>, how's the chalk integration going? I'm eager for lazy normalisation parts to get integrated, so work can begin in fixing type aliases :-)</p>



<a name="159453334"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/159453334" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#159453334">(Feb 26 2019 at 20:03)</a>:</h4>
<p>So I spent <em>some</em> time today -- not as much as I would like =) -- digging into lazy normalization as promised. I still feel like I don't have a "crisp" answer to what "the core problem" is when it comes to const generics etc. But it quickly became clear that a useful thing would be to just try to document and layout <strong>how the existing normalization code works</strong>. So I've started working on that, taking some notes in <a href="https://paper.dropbox.com/doc/Lazy-normalization--AYVUCdPTs820qxCpfV0QQFJFAg-Ryv4YfpIcGAl6R3ZtWrWs" target="_blank" title="https://paper.dropbox.com/doc/Lazy-normalization--AYVUCdPTs820qxCpfV0QQFJFAg-Ryv4YfpIcGAl6R3ZtWrWs">this dropbox paper over here</a> (those aren't that complete yet).</p>
<p>I was thinking I will put some more effort into that this week and then maybe try to schedule a public presentation to talk it over. Ideally, I'll have time to sketch out how associated types are handled, and then some time to sketch out to show what happens with constants and where we (potentially?) run into trouble and what we might do to fix it.</p>



<a name="160321833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/160321833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#160321833">(Mar 08 2019 at 20:17)</a>:</h4>
<p>OK, I've been digging more into this.</p>



<a name="160321837"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/160321837" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#160321837">(Mar 08 2019 at 20:17)</a>:</h4>
<p>I'm going to drop a few live notes here.</p>



<a name="160322627"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/160322627" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#160322627">(Mar 08 2019 at 20:27)</a>:</h4>
<p>OK, so, I'm a bit confused still. I'm trying to trace out the cycle. I've confirmed that this is the test case</p>
<div class="codehilite"><pre><span></span><span class="k">fn</span> <span class="nf">foo</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="p">(</span><span class="w"></span>
<span class="w">    </span><span class="n">_</span>: <span class="p">[</span><span class="kt">u8</span><span class="p">;</span><span class="w"> </span><span class="n">size_of</span>::<span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="p">()],</span><span class="w"></span>
<span class="p">)</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>
</pre></div>



<a name="160322777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/160322777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#160322777">(Mar 08 2019 at 20:29)</a>:</h4>
<p>however, rustc as currently implemented doesn't cause a cycle because we don't have the 100% correct setup</p>



<a name="160322788"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/160322788" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#160322788">(Mar 08 2019 at 20:29)</a>:</h4>
<p>in particular, the parent generics of the <code>size_of::&lt;T&gt;</code> "anonymous constant" (<code>AnonConst</code>) are currently not linked</p>



<a name="160322796"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/160322796" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#160322796">(Mar 08 2019 at 20:29)</a>:</h4>
<p>but they <em>should be</em> the <code>foo</code> function itself</p>



<a name="160323058"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/160323058" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#160323058">(Mar 08 2019 at 20:33)</a>:</h4>
<p>that said, when I try to trace through what will happen, I don't <em>yet</em> see the cycle</p>



<a name="160323081"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/160323081" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#160323081">(Mar 08 2019 at 20:33)</a>:</h4>
<p>/me tempted to give it a try</p>



<a name="163502406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163502406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163502406">(Apr 16 2019 at 20:07)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> I have a question for you -- how hard do you think it would be to rejuvenate your old branch that uses the correct parents of constants for generics (and which was hitting cycle errors)?</p>



<a name="163537109"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163537109" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163537109">(Apr 17 2019 at 07:13)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/59409" target="_blank" title="https://github.com/rust-lang/rust/issues/59409">#59409</a></p>



<a name="163537175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163537175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163537175">(Apr 17 2019 at 07:14)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> yes, it's literally adding <code>| Node::AnonConst(_)</code> to the first arm of the first <code>match</code> in <code>generics_of</code>, that's what "correct parents" amounts to</p>



<a name="163537183"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163537183" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163537183">(Apr 17 2019 at 07:14)</a>:</h4>
<p>anyway, it can't even build libcore. I have a weirder version that idk how to update, and which is probably unsound, that left <code>ParamEnv</code>s kind of "less eagerly normalized"</p>



<a name="163537207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163537207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163537207">(Apr 17 2019 at 07:15)</a>:</h4>
<p>but that <em>still</em> breaks, because <code>rustc_typeck::check</code> <em>really</em> wants a normalized <code>ParamEnv</code>, just in some tests instead of libcore</p>



<a name="163545374"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163545374" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163545374">(Apr 17 2019 at 09:33)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> ok -- is that really all I have to do to observe the problem? in that case, I'll take some time on friday to investigate, I feel like I have a hunch of how to do things but I wanted to see the errors in action. If it's easy for you to do, having a branch I can start from would be great (preferably not the version doing the hacky, unsound thing)</p>



<a name="163545379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163545379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163545379">(Apr 17 2019 at 09:33)</a>:</h4>
<p>yes!</p>



<a name="163545429"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163545429" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163545429">(Apr 17 2019 at 09:34)</a>:</h4>
<p>the entire compiler supports all of the usecases, except for the cycles caused by lazy normalization</p>



<a name="163545450"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163545450" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163545450">(Apr 17 2019 at 09:34)</a>:</h4>
<p>and that missing bit is basically commented out as a hack :P</p>



<a name="163545460"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163545460" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163545460">(Apr 17 2019 at 09:34)</a>:</h4>
<p>(except we haven't actually added it as a comment yet)</p>



<a name="163750198"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163750198" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163750198">(Apr 19 2019 at 17:34)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> ok so I applied this patch</p>
<div class="codehilite"><pre><span></span>modified   src/librustc_typeck/collect.rs
<span class="gu">@@ -888,6 +888,7 @@ fn generics_of&lt;&#39;a, &#39;tcx&gt;(tcx: TyCtxt&lt;&#39;a, &#39;tcx, &#39;tcx&gt;, def_id: DefId) -&gt; &amp;&#39;tcx ty</span>

     let node = tcx.hir().get_by_hir_id(hir_id);
     let parent_def_id = match node {
<span class="gi">+        Node::AnonConst(_) |</span>
         Node::ImplItem(_) | Node::TraitItem(_) | Node::Variant(_) |
         Node::Ctor(..) | Node::Field(_) =&gt; {
             let parent_id = tcx.hir().get_parent_item(hir_id);
</pre></div>


<p>but I'm getting unwrap errors now from [this code in project.rs]:</p>
<div class="codehilite"><pre><span></span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">substs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tcx</span><span class="p">.</span><span class="n">lift_to_global</span><span class="p">(</span><span class="o">&amp;</span><span class="n">substs</span><span class="p">).</span><span class="n">unwrap</span><span class="p">();</span><span class="w"></span>
</pre></div>


<p>presumably because the <code>substs</code> now includes some details from the surrounding context, and there are inference variables in there.</p>



<a name="163750213"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163750213" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163750213">(Apr 19 2019 at 17:34)</a>:</h4>
<p>I'm not sure if you had an intended patch there or if I am, indeed, looking at (a facet of) the problem =)</p>



<a name="163852930"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163852930" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163852930">(Apr 21 2019 at 14:01)</a>:</h4>
<p>ugh</p>



<a name="163852974"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163852974" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163852974">(Apr 21 2019 at 14:02)</a>:</h4>
<p>that stuff is supposed to be resilient to inference variables</p>



<a name="163852976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163852976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163852976">(Apr 21 2019 at 14:02)</a>:</h4>
<p>I wonder if <span class="user-mention" data-user-id="124288">@oli</span>'s PR where he fixed some of this stuff went through</p>



<a name="163852981"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163852981" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163852981">(Apr 21 2019 at 14:02)</a>:</h4>
<p>basically it's supposed to attempt to evaluate... well</p>



<a name="163852992"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163852992" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163852992">(Apr 21 2019 at 14:03)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I think actually, the problem is the <code>const_eval</code> query is not canonicalizing, and we needed your help to figure out how to do that :P</p>



<a name="163853042"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163853042" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163853042">(Apr 21 2019 at 14:04)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/pull/59369#discussion_r269151886" target="_blank" title="https://github.com/rust-lang/rust/pull/59369#discussion_r269151886">https://github.com/rust-lang/rust/pull/59369#discussion_r269151886</a></p>



<a name="163853043"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163853043" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163853043">(Apr 21 2019 at 14:04)</a>:</h4>
<p>there you go :D</p>



<a name="163853047"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/163853047" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#163853047">(Apr 21 2019 at 14:04)</a>:</h4>
<p>but that's the PR that tries to fix some stuff</p>



<a name="164707676"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/164707676" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#164707676">(May 02 2019 at 13:28)</a>:</h4>
<p>Hey is there a tracking issue for lazy normalization?</p>



<a name="164707724"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/164707724" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#164707724">(May 02 2019 at 13:28)</a>:</h4>
<p>I'd like to downgrade priority on issue <a href="https://github.com/rust-lang/rust/issues/54940" target="_blank" title="https://github.com/rust-lang/rust/issues/54940">#54940</a>, which is blocked by Lazy Normalization, but I don't want to do the downgrade without at least making a link to a tracking issue</p>



<a name="164708100"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/164708100" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#164708100">(May 02 2019 at 13:33)</a>:</h4>
<p>I settled on creating "lazy normalization" <a href="https://github.com/rust-lang/rust/issues/60471" target="_blank" title="https://github.com/rust-lang/rust/issues/60471">#60471</a></p>



<a name="164757714"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/164757714" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#164757714">(May 03 2019 at 00:35)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> to my knowledge no such issue existed - many, though not all, of the maybe related bugs likely have been at least semi-duplicate closed/cross-linked when I noticed; unfortunately at least to me lazy norm is somewhat nebulous, i.e., I don't actually know what it will / won't affect, so I was hesitant to label or otherwise strongly associate things</p>



<a name="165020041"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/165020041" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#165020041">(May 06 2019 at 21:19)</a>:</h4>
<blockquote>
<p>I think actually, the problem is the <code>const_eval</code> query is not canonicalizing, and we needed your help to figure out how to do that :P</p>
</blockquote>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> so I was finally looking at this again, and basically I came to the same conclusion. This should be canonicalization</p>



<a name="165020125"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/165020125" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#165020125">(May 06 2019 at 21:20)</a>:</h4>
<p>Reading <a href="https://github.com/rust-lang/rust/pull/59369#discussion_r269151886" target="_blank" title="https://github.com/rust-lang/rust/pull/59369#discussion_r269151886">these comments</a>, I guess I need to read that PR a bit</p>



<a name="165020140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/lazy%20normalization/near/165020140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/lazy.20normalization.html#165020140">(May 06 2019 at 21:20)</a>:</h4>
<p>I could probably help you setup a canon path though</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>